Static code analysis is the analysis of computer software performed without actually executing the software being analyzed. The term is usually applied to the analysis performed by an automated tool. The analyses performed by these tools vary from those that only consider the behavior of individual statements and declarations to those that include an analysis of the complete source code of a program. Modern static check tools can be integrated into a development environment. Such an integration might, for example, highlight flawed code while it is being typed. Such early feedback aids in improving quality and reducing costs.